From e082d54a998a42e5b41ef67e6921939bd13284b5 Mon Sep 17 00:00:00 2001 From: robertl Date: Fri, 23 Mar 2007 17:42:01 +0000 Subject: [PATCH] Jeremy Ehrhardt contributes vitovtt format. git-svn-id: http://gpsbabel.googlecode.com/svn/trunk@2708 f51c46e8-681c-474f-0cfe-069cfd0219fb --- gpsbabel/Makefile.in | 2 +- gpsbabel/reference/track/stmwpp-route.gpx | 64 + gpsbabel/reference/track/vitovtt-sample.gpx | 7478 +++++++++++++++++++ gpsbabel/reference/track/vitovtt-sample.vtt | Bin 0 -> 59720 bytes gpsbabel/testo | 7 + gpsbabel/vecs.c | 7 + gpsbabel/vitosmt.c | 4 + gpsbabel/vitovtt.c | 140 + gpsbabel/xmldoc/formats/vitovtt.xml | 117 + 9 files changed, 7818 insertions(+), 1 deletion(-) create mode 100644 gpsbabel/reference/track/stmwpp-route.gpx create mode 100644 gpsbabel/reference/track/vitovtt-sample.gpx create mode 100644 gpsbabel/reference/track/vitovtt-sample.vtt create mode 100644 gpsbabel/vitovtt.c create mode 100644 gpsbabel/xmldoc/formats/vitovtt.xml diff --git a/gpsbabel/Makefile.in b/gpsbabel/Makefile.in index 19284ecec..835e7bdb8 100644 --- a/gpsbabel/Makefile.in +++ b/gpsbabel/Makefile.in @@ -54,7 +54,7 @@ FMTS=magproto.o gpx.o geo.o mapsend.o mapsource.o garmin_tables.o \ tef_xml.o maggeo.o pathaway.o vitosmt.o gdb.o bcr.o coto.o \ ignrando.o stmwpp.o msroute.o cst.o nmn4.o mag_pdb.o compegps.o \ yahoo.o unicsv.o wfff_xml.o garmin_txt.o axim_gpb.o gpssim.o \ - wbt-200.o stmsdf.o gtrnctr.o dmtlog.o raymarine.o alan.o + wbt-200.o stmsdf.o gtrnctr.o dmtlog.o raymarine.o alan.o vitovtt.o FILTERS=position.o radius.o duplicate.o arcdist.o polygon.o smplrout.o \ reverse_route.o sort.o stackfilter.o trackfilter.o discard.o \ diff --git a/gpsbabel/reference/track/stmwpp-route.gpx b/gpsbabel/reference/track/stmwpp-route.gpx new file mode 100644 index 000000000..92d4ec849 --- /dev/null +++ b/gpsbabel/reference/track/stmwpp-route.gpx @@ -0,0 +1,64 @@ + + + + + + + NARVA + NARVA + NARVA + + + + Liebknechtstras + Liebknechtstras + Liebknechtstras + + + + Jahnstrasse11 + Jahnstrasse11 + Jahnstrasse11 + + + + Elsterberg + Elsterberg + Elsterberg + + + + Greiz + Greiz + Greiz + + + + Gosel + Gosel + Gosel + + + + 3 + 3 + 3 + + + + Altenburg-Umgehung + Altenburg-Umgehung + Altenburg-Umgehung + + + + Völkerschlachtdenkmal + Völkerschlachtdenkmal + Völkerschlachtdenkmal + + diff --git a/gpsbabel/reference/track/vitovtt-sample.gpx b/gpsbabel/reference/track/vitovtt-sample.gpx new file mode 100644 index 000000000..0129febf6 --- /dev/null +++ b/gpsbabel/reference/track/vitovtt-sample.gpx @@ -0,0 +1,7478 @@ + + + + + + + + -0.800000 + + + + -0.100000 + + + + 1.600000 + + + + 2.600000 + + + + 3.000000 + + + + 4.400000 + + + + 4.600000 + + + + 4.700000 + + + + 4.900000 + + + + 7.900000 + + + + 10.900000 + + + + 11.900000 + + + + 13.600000 + + + + 15.100000 + + + + 15.700000 + + + + 14.100000 + + + + 13.900000 + + + + 12.600000 + + + + 11.400000 + + + + 10.000000 + + + + 10.300000 + + + + 9.800000 + + + + 8.900000 + + + + 6.900000 + + + + 6.500000 + + + + 5.900000 + + + + 4.000000 + + + + 4.600000 + + + + 4.200000 + + + + 3.500000 + + + + 2.000000 + + + + 1.100000 + + + + -0.200000 + + + + -0.500000 + + + + -1.300000 + + + + -1.500000 + + + + -3.300000 + + + + -4.800000 + + + + -5.100000 + + + + -5.300000 + + + + -4.900000 + + + + -4.500000 + + + + -4.200000 + + + + -5.200000 + + + + -6.300000 + + + + -6.800000 + + + + -7.100000 + + + + -9.800000 + + + + -10.000000 + + + + -12.000000 + + + + -12.400000 + + + + -11.300000 + + + + -11.300000 + + + + -10.900000 + + + + -8.800000 + + + + -8.100000 + + + + -6.700000 + + + + -5.700000 + + + + -3.200000 + + + + -0.800000 + + + + 2.600000 + + + + 7.000000 + + + + 11.900000 + + + + 15.300000 + + + + 17.700001 + + + + 21.700001 + + + + 26.200001 + + + + 29.900000 + + + + 35.500000 + + + + 40.200001 + + + + 42.700001 + + + + 45.900002 + + + + 44.700001 + + + + 44.099998 + + + + 45.200001 + + + + 44.200001 + + + + 47.000000 + + + + 50.200001 + + + + 54.500000 + + + + 58.200001 + + + + 60.099998 + + + + 64.800003 + + + + 69.400002 + + + + 75.199997 + + + + 78.500000 + + + + 78.099998 + + + + 77.099998 + + + + 74.900002 + + + + 68.599998 + + + + 69.099998 + + + + 69.400002 + + + + 68.099998 + + + + 66.500000 + + + + 64.000000 + + + + 58.400002 + + + + 56.900002 + + + + 52.099998 + + + + 48.799999 + + + + 46.500000 + + + + 50.599998 + + + + 52.400002 + + + + 54.000000 + + + + 49.200001 + + + + 43.700001 + + + + 37.900002 + + + + 32.200001 + + + + 24.400000 + + + + 18.100000 + + + + 9.700000 + + + + 0.500000 + + + + -3.700000 + + + + -7.900000 + + + + -6.900000 + + + + -4.400000 + + + + 1.600000 + + + + 9.400000 + + + + 14.900000 + + + + 20.500000 + + + + 22.799999 + + + + 22.600000 + + + + 21.000000 + + + + 13.700000 + + + + 10.500000 + + + + 6.400000 + + + + 1.000000 + + + + -3.600000 + + + + -10.100000 + + + + -15.400000 + + + + -17.500000 + + + + -17.400000 + + + + -18.600000 + + + + -19.200001 + + + + -21.299999 + + + + -22.400000 + + + + -25.799999 + + + + -26.100000 + + + + -25.600000 + + + + -24.400000 + + + + -26.000000 + + + + -28.700001 + + + + -32.400002 + + + + -35.599998 + + + + -36.900002 + + + + -38.200001 + + + + -38.799999 + + + + -37.099998 + + + + -37.599998 + + + + -37.400002 + + + + -42.200001 + + + + -41.900002 + + + + -40.799999 + + + + -40.900002 + + + + -39.599998 + + + + -40.599998 + + + + -41.000000 + + + + -40.099998 + + + + -35.799999 + + + + -32.900002 + + + + -33.000000 + + + + -31.500000 + + + + -29.299999 + + + + -28.400000 + + + + -29.500000 + + + + -30.200001 + + + + -30.100000 + + + + -31.100000 + + + + -34.299999 + + + + -33.599998 + + + + -31.500000 + + + + -27.400000 + + + + -24.600000 + + + + -17.200001 + + + + -13.400000 + + + + -8.000000 + + + + -4.300000 + + + + -0.900000 + + + + 3.000000 + + + + 8.100000 + + + + 11.200000 + + + + 14.600000 + + + + 17.200001 + + + + 17.299999 + + + + 20.500000 + + + + 21.799999 + + + + 22.900000 + + + + 22.799999 + + + + 23.100000 + + + + 23.000000 + + + + 22.200001 + + + + 21.900000 + + + + 23.100000 + + + + 24.299999 + + + + 27.900000 + + + + 27.799999 + + + + 25.299999 + + + + 26.299999 + + + + 29.200001 + + + + 31.200001 + + + + 30.100000 + + + + 32.400002 + + + + 34.700001 + + + + 37.099998 + + + + 38.200001 + + + + 39.599998 + + + + 38.299999 + + + + 38.200001 + + + + 37.299999 + + + + 35.700001 + + + + 34.400002 + + + + 30.400000 + + + + 29.400000 + + + + 28.600000 + + + + 27.299999 + + + + 27.000000 + + + + 27.900000 + + + + 27.900000 + + + + 26.100000 + + + + 25.299999 + + + + 25.400000 + + + + 25.200001 + + + + 23.799999 + + + + 22.799999 + + + + 21.100000 + + + + 20.200001 + + + + 20.200001 + + + + 18.900000 + + + + 19.000000 + + + + 18.100000 + + + + 16.400000 + + + + 14.600000 + + + + 12.400000 + + + + 11.900000 + + + + 9.400000 + + + + 8.300000 + + + + 5.700000 + + + + 6.800000 + + + + 7.500000 + + + + 5.100000 + + + + 3.700000 + + + + 2.900000 + + + + 0.300000 + + + + 0.300000 + + + + -3.600000 + + + + -5.900000 + + + + -8.800000 + + + + -8.700000 + + + + -9.200000 + + + + -9.900000 + + + + -10.600000 + + + + -10.700000 + + + + -10.900000 + + + + -10.800000 + + + + -11.800000 + + + + -13.100000 + + + + -15.300000 + + + + -14.500000 + + + + -14.600000 + + + + -14.700000 + + + + -15.600000 + + + + -19.500000 + + + + -22.400000 + + + + -20.600000 + + + + -20.000000 + + + + -20.100000 + + + + -20.600000 + + + + -20.900000 + + + + -21.799999 + + + + -25.500000 + + + + -26.100000 + + + + -25.500000 + + + + -24.500000 + + + + -25.000000 + + + + -24.900000 + + + + -23.299999 + + + + -23.100000 + + + + -20.700001 + + + + -17.799999 + + + + -15.600000 + + + + -14.700000 + + + + -14.100000 + + + + -11.500000 + + + + -12.500000 + + + + -12.200000 + + + + -12.500000 + + + + -11.800000 + + + + -10.600000 + + + + -8.000000 + + + + -5.600000 + + + + -4.600000 + + + + -3.900000 + + + + -1.800000 + + + + -0.100000 + + + + 0.100000 + + + + 1.000000 + + + + 1.000000 + + + + 1.800000 + + + + 2.200000 + + + + 3.800000 + + + + 5.000000 + + + + 6.300000 + + + + 6.800000 + + + + 8.400000 + + + + 9.400000 + + + + 10.300000 + + + + 11.300000 + + + + 13.700000 + + + + 15.600000 + + + + 19.000000 + + + + 19.299999 + + + + 20.500000 + + + + 21.400000 + + + + 23.000000 + + + + 24.200001 + + + + 28.799999 + + + + 31.100000 + + + + 35.099998 + + + + 39.799999 + + + + 46.200001 + + + + 51.000000 + + + + 52.799999 + + + + 53.900002 + + + + 58.500000 + + + + 63.400002 + + + + 66.599998 + + + + 70.099998 + + + + 74.099998 + + + + 77.400002 + + + + 81.599998 + + + + 84.599998 + + + + 87.900002 + + + + 91.599998 + + + + 91.199997 + + + + 91.099998 + + + + 92.300003 + + + + 94.199997 + + + + 96.000000 + + + + 96.300003 + + + + 95.000000 + + + + 95.699997 + + + + 97.400002 + + + + 99.199997 + + + + 100.199997 + + + + 101.599998 + + + + 102.500000 + + + + 104.500000 + + + + 104.199997 + + + + 105.000000 + + + + 106.800003 + + + + 104.599998 + + + + 100.800003 + + + + 99.699997 + + + + 99.000000 + + + + 97.000000 + + + + 94.300003 + + + + 92.300003 + + + + 91.099998 + + + + 91.500000 + + + + 91.099998 + + + + 89.800003 + + + + 88.500000 + + + + 89.099998 + + + + 85.099998 + + + + 83.300003 + + + + 82.000000 + + + + 79.199997 + + + + 76.900002 + + + + 78.199997 + + + + 80.000000 + + + + 81.199997 + + + + 81.300003 + + + + 79.500000 + + + + 79.199997 + + + + 78.400002 + + + + 77.099998 + + + + 78.000000 + + + + 78.199997 + + + + 76.599998 + + + + 78.000000 + + + + 81.199997 + + + + 82.599998 + + + + 79.800003 + + + + 78.099998 + + + + 77.199997 + + + + 75.400002 + + + + 77.400002 + + + + 76.800003 + + + + 76.800003 + + + + 77.000000 + + + + 78.300003 + + + + 78.800003 + + + + 77.500000 + + + + 78.599998 + + + + 78.099998 + + + + 79.099998 + + + + 78.300003 + + + + 77.199997 + + + + 76.199997 + + + + 72.599998 + + + + 69.599998 + + + + 67.400002 + + + + 64.699997 + + + + 61.900002 + + + + 59.400002 + + + + 57.799999 + + + + 54.299999 + + + + 51.500000 + + + + 48.000000 + + + + 45.400002 + + + + 43.000000 + + + + 42.200001 + + + + 40.200001 + + + + 37.700001 + + + + 36.599998 + + + + 35.799999 + + + + 33.599998 + + + + 33.400002 + + + + 30.299999 + + + + 28.900000 + + + + 27.000000 + + + + 25.299999 + + + + 23.799999 + + + + 21.900000 + + + + 21.200001 + + + + 19.799999 + + + + 17.500000 + + + + 15.600000 + + + + 14.000000 + + + + 12.200000 + + + + 11.500000 + + + + 10.000000 + + + + 10.000000 + + + + 9.100000 + + + + 8.300000 + + + + 7.800000 + + + + 7.900000 + + + + 7.400000 + + + + 9.200000 + + + + 10.500000 + + + + 11.500000 + + + + 11.000000 + + + + 10.500000 + + + + 11.300000 + + + + 11.300000 + + + + 12.500000 + + + + 13.100000 + + + + 13.800000 + + + + 15.100000 + + + + 15.400000 + + + + 15.300000 + + + + 16.200001 + + + + 16.100000 + + + + 15.800000 + + + + 15.500000 + + + + 15.800000 + + + + 14.200000 + + + + 14.600000 + + + + 13.900000 + + + + 15.200000 + + + + 15.400000 + + + + 15.700000 + + + + 15.400000 + + + + 15.800000 + + + + 16.000000 + + + + 16.799999 + + + + 16.600000 + + + + 17.200001 + + + + 17.900000 + + + + 17.100000 + + + + 18.000000 + + + + 19.400000 + + + + 19.500000 + + + + 19.299999 + + + + 21.000000 + + + + 23.299999 + + + + 23.500000 + + + + 23.299999 + + + + 23.600000 + + + + 24.100000 + + + + 24.700001 + + + + 25.100000 + + + + 24.900000 + + + + 23.900000 + + + + 24.700001 + + + + 24.100000 + + + + 25.200001 + + + + 24.900000 + + + + 24.700001 + + + + 24.600000 + + + + 23.600000 + + + + 23.700001 + + + + 22.400000 + + + + 22.500000 + + + + 21.799999 + + + + 21.200001 + + + + 20.799999 + + + + 20.100000 + + + + 17.500000 + + + + 16.600000 + + + + 18.400000 + + + + 20.200001 + + + + 20.100000 + + + + 20.799999 + + + + 21.000000 + + + + 20.900000 + + + + 19.100000 + + + + 18.299999 + + + + 18.500000 + + + + 19.600000 + + + + 19.299999 + + + + 18.299999 + + + + 17.900000 + + + + 16.299999 + + + + 13.900000 + + + + 13.100000 + + + + 10.900000 + + + + 9.900000 + + + + 8.500000 + + + + 7.500000 + + + + 5.900000 + + + + 5.600000 + + + + 4.400000 + + + + 5.000000 + + + + 3.400000 + + + + 3.700000 + + + + 3.800000 + + + + 4.100000 + + + + 3.800000 + + + + 4.300000 + + + + 5.500000 + + + + 4.800000 + + + + 6.000000 + + + + 6.000000 + + + + 6.100000 + + + + 6.100000 + + + + 6.700000 + + + + 6.100000 + + + + 5.600000 + + + + 4.400000 + + + + 3.700000 + + + + 4.800000 + + + + 6.000000 + + + + 4.900000 + + + + 4.300000 + + + + 2.400000 + + + + 2.800000 + + + + 1.600000 + + + + 1.300000 + + + + 1.300000 + + + + -1.800000 + + + + -2.800000 + + + + -4.200000 + + + + -4.400000 + + + + -3.900000 + + + + -3.000000 + + + + -2.700000 + + + + -2.100000 + + + + 0.500000 + + + + 1.900000 + + + + 3.300000 + + + + 5.100000 + + + + 6.200000 + + + + 6.800000 + + + + 8.100000 + + + + 7.800000 + + + + 7.300000 + + + + 8.800000 + + + + 9.500000 + + + + 11.200000 + + + + 10.900000 + + + + 11.400000 + + + + 11.600000 + + + + 11.000000 + + + + 10.300000 + + + + 9.800000 + + + + 9.500000 + + + + 8.200000 + + + + 6.600000 + + + + 6.600000 + + + + 7.100000 + + + + 7.300000 + + + + 6.700000 + + + + 6.300000 + + + + 7.600000 + + + + 8.100000 + + + + 9.000000 + + + + 9.300000 + + + + 8.900000 + + + + 7.700000 + + + + 8.200000 + + + + 9.200000 + + + + 10.100000 + + + + 11.600000 + + + + 11.800000 + + + + 12.800000 + + + + 14.800000 + + + + 17.100000 + + + + 17.700001 + + + + 17.299999 + + + + 18.600000 + + + + 20.100000 + + + + 21.700001 + + + + 22.600000 + + + + 22.900000 + + + + 23.200001 + + + + 23.200001 + + + + 22.100000 + + + + 19.200001 + + + + 17.600000 + + + + 16.200001 + + + + 18.000000 + + + + 18.700001 + + + + 18.400000 + + + + 18.000000 + + + + 16.299999 + + + + 15.400000 + + + + 13.900000 + + + + 12.900000 + + + + 12.800000 + + + + 12.000000 + + + + 11.200000 + + + + 11.000000 + + + + 10.100000 + + + + 9.900000 + + + + 10.600000 + + + + 9.600000 + + + + 9.300000 + + + + 7.300000 + + + + 5.700000 + + + + 5.400000 + + + + 5.100000 + + + + 5.000000 + + + + 4.100000 + + + + 5.000000 + + + + 7.200000 + + + + 8.000000 + + + + 8.100000 + + + + 8.800000 + + + + 10.700000 + + + + 12.800000 + + + + 13.900000 + + + + 14.200000 + + + + 12.600000 + + + + 10.800000 + + + + 11.200000 + + + + 13.000000 + + + + 15.400000 + + + + 19.900000 + + + + 23.400000 + + + + 25.100000 + + + + 26.299999 + + + + 26.299999 + + + + 26.400000 + + + + 26.600000 + + + + 27.299999 + + + + 25.799999 + + + + 25.400000 + + + + 25.400000 + + + + 24.799999 + + + + 25.500000 + + + + 24.900000 + + + + 25.000000 + + + + 25.799999 + + + + 27.200001 + + + + 26.799999 + + + + 25.700001 + + + + 26.500000 + + + + 25.500000 + + + + 24.200001 + + + + 24.000000 + + + + 23.299999 + + + + 24.100000 + + + + 24.700001 + + + + 24.799999 + + + + 24.200001 + + + + 25.200001 + + + + 25.799999 + + + + 25.799999 + + + + 26.799999 + + + + 26.100000 + + + + 23.500000 + + + + 22.700001 + + + + 22.600000 + + + + 22.100000 + + + + 21.100000 + + + + 21.600000 + + + + 20.600000 + + + + 20.400000 + + + + 20.600000 + + + + 20.799999 + + + + 19.100000 + + + + 20.200001 + + + + 20.000000 + + + + 20.900000 + + + + 20.700001 + + + + 20.900000 + + + + 22.700001 + + + + 23.400000 + + + + 24.200001 + + + + 24.900000 + + + + 24.600000 + + + + 23.700001 + + + + 23.500000 + + + + 24.900000 + + + + 25.600000 + + + + 25.100000 + + + + 24.700001 + + + + 24.500000 + + + + 23.299999 + + + + 22.799999 + + + + 23.799999 + + + + 23.400000 + + + + 24.500000 + + + + 24.500000 + + + + 23.600000 + + + + 22.900000 + + + + 21.600000 + + + + 21.100000 + + + + 21.000000 + + + + 23.100000 + + + + 24.400000 + + + + 27.299999 + + + + 27.600000 + + + + 29.900000 + + + + 30.600000 + + + + 30.900000 + + + + 32.799999 + + + + 34.599998 + + + + 35.299999 + + + + 35.500000 + + + + 35.099998 + + + + 37.099998 + + + + 38.299999 + + + + 38.799999 + + + + 38.700001 + + + + 39.799999 + + + + 40.500000 + + + + 40.599998 + + + + 41.700001 + + + + 42.400002 + + + + 43.500000 + + + + 44.299999 + + + + 44.799999 + + + + 46.099998 + + + + 45.900002 + + + + 46.799999 + + + + 48.000000 + + + + 49.200001 + + + + 50.599998 + + + + 51.200001 + + + + 52.799999 + + + + 53.700001 + + + + 55.299999 + + + + 56.500000 + + + + 57.799999 + + + + 56.900002 + + + + 55.099998 + + + + 53.099998 + + + + 52.200001 + + + + 52.299999 + + + + 50.700001 + + + + 50.799999 + + + + 51.200001 + + + + 49.000000 + + + + 48.299999 + + + + 47.200001 + + + + 46.599998 + + + + 43.799999 + + + + 42.200001 + + + + 40.500000 + + + + 38.500000 + + + + 37.599998 + + + + 37.500000 + + + + 37.099998 + + + + 35.400002 + + + + 34.099998 + + + + 33.900002 + + + + 33.299999 + + + + 33.299999 + + + + 32.299999 + + + + 31.100000 + + + + 30.500000 + + + + 30.400000 + + + + 30.600000 + + + + 29.700001 + + + + 28.600000 + + + + 27.900000 + + + + 26.200001 + + + + 25.200001 + + + + 24.100000 + + + + 23.200001 + + + + 21.100000 + + + + 21.100000 + + + + 20.100000 + + + + 20.900000 + + + + 20.799999 + + + + 19.200001 + + + + 18.500000 + + + + 17.900000 + + + + 16.600000 + + + + 16.299999 + + + + 14.000000 + + + + 12.100000 + + + + 12.500000 + + + + 11.000000 + + + + 10.200000 + + + + 10.600000 + + + + 12.100000 + + + + 13.000000 + + + + 14.800000 + + + + 15.200000 + + + + 15.400000 + + + + 17.900000 + + + + 18.700001 + + + + 20.100000 + + + + 20.200001 + + + + 21.000000 + + + + 19.500000 + + + + 18.500000 + + + + 19.200001 + + + + 19.600000 + + + + 20.299999 + + + + 22.200001 + + + + 21.400000 + + + + 23.700001 + + + + 24.100000 + + + + 26.799999 + + + + 29.799999 + + + + 30.200001 + + + + 31.000000 + + + + 32.500000 + + + + 33.000000 + + + + 32.400002 + + + + 32.400002 + + + + 33.099998 + + + + 33.299999 + + + + 36.500000 + + + + 38.099998 + + + + 37.700001 + + + + 37.500000 + + + + 38.200001 + + + + 39.000000 + + + + 39.400002 + + + + 38.500000 + + + + 36.700001 + + + + 36.400002 + + + + 35.599998 + + + + 37.500000 + + + + 38.299999 + + + + 37.500000 + + + + 38.700001 + + + + 39.599998 + + + + 38.500000 + + + + 38.000000 + + + + 39.099998 + + + + 39.700001 + + + + 41.000000 + + + + 40.400002 + + + + 40.799999 + + + + 39.200001 + + + + 39.900002 + + + + 39.200001 + + + + 38.299999 + + + + 38.299999 + + + + 38.900002 + + + + 40.599998 + + + + 41.599998 + + + + 42.299999 + + + + 42.299999 + + + + 43.299999 + + + + 41.500000 + + + + 40.500000 + + + + 37.599998 + + + + 36.299999 + + + + 37.599998 + + + + 37.200001 + + + + 37.299999 + + + + 36.500000 + + + + 34.799999 + + + + 34.200001 + + + + 32.099998 + + + + 29.700001 + + + + 29.400000 + + + + 28.900000 + + + + 27.500000 + + + + 28.900000 + + + + 32.400002 + + + + 32.299999 + + + + 33.700001 + + + + 35.299999 + + + + 34.700001 + + + + 35.400002 + + + + 35.099998 + + + + 34.299999 + + + + 31.799999 + + + + 28.900000 + + + + 23.799999 + + + + 23.400000 + + + + 23.799999 + + + + 22.799999 + + + + 21.900000 + + + + 21.600000 + + + + 21.400000 + + + + 21.799999 + + + + 22.100000 + + + + 22.500000 + + + + 23.200001 + + + + 24.200001 + + + + 25.200001 + + + + 25.900000 + + + + 26.100000 + + + + 25.799999 + + + + 23.799999 + + + + 21.799999 + + + + 20.400000 + + + + 19.799999 + + + + 19.100000 + + + + 20.000000 + + + + 21.100000 + + + + 21.400000 + + + + 22.400000 + + + + 23.299999 + + + + 25.500000 + + + + 27.100000 + + + + 29.700001 + + + + 31.600000 + + + + 33.599998 + + + + 36.099998 + + + + 36.599998 + + + + 32.900002 + + + + 31.600000 + + + + 31.100000 + + + + 30.100000 + + + + 30.200001 + + + + 29.500000 + + + + 29.799999 + + + + 31.400000 + + + + 33.500000 + + + + 34.900002 + + + + 36.500000 + + + + 38.000000 + + + + 39.400002 + + + + 41.299999 + + + + 42.700001 + + + + 43.900002 + + + + 44.500000 + + + + 44.900002 + + + + 43.900002 + + + + 43.299999 + + + + 42.700001 + + + + 41.900002 + + + + 41.099998 + + + + 40.500000 + + + + 39.000000 + + + + 36.900002 + + + + 35.400002 + + + + 34.799999 + + + + 35.400002 + + + + 35.599998 + + + + 35.700001 + + + + 36.200001 + + + + 36.400002 + + + + 36.299999 + + + + 36.599998 + + + + 35.599998 + + + + 34.000000 + + + + 32.599998 + + + + 31.100000 + + + + 31.100000 + + + + 30.299999 + + + + 29.900000 + + + + 29.600000 + + + + 30.100000 + + + + 31.000000 + + + + 31.000000 + + + + 30.299999 + + + + 29.900000 + + + + 29.700001 + + + + 29.500000 + + + + 28.100000 + + + + 26.799999 + + + + 25.900000 + + + + 25.100000 + + + + 24.200001 + + + + 23.000000 + + + + 22.500000 + + + + 21.799999 + + + + 21.100000 + + + + 20.900000 + + + + 19.799999 + + + + 19.299999 + + + + 19.799999 + + + + 20.500000 + + + + 22.299999 + + + + 24.400000 + + + + 25.799999 + + + + 28.200001 + + + + 29.600000 + + + + 31.100000 + + + + 31.600000 + + + + 32.000000 + + + + 32.299999 + + + + 33.200001 + + + + 33.900002 + + + + 35.400002 + + + + 36.299999 + + + + 36.799999 + + + + 36.500000 + + + + 36.200001 + + + + 36.400002 + + + + 36.200001 + + + + 36.400002 + + + + 36.599998 + + + + 35.599998 + + + + 35.099998 + + + + 33.900002 + + + + 33.700001 + + + + 34.299999 + + + + 35.200001 + + + + 35.799999 + + + + 35.299999 + + + + 34.299999 + + + + 34.099998 + + + + 34.000000 + + + + 34.400002 + + + + 35.599998 + + + + 35.500000 + + + + 37.099998 + + + + 37.900002 + + + + 37.799999 + + + + 37.799999 + + + + 36.700001 + + + + 36.299999 + + + + 36.599998 + + + + 38.099998 + + + + 40.099998 + + + + 40.000000 + + + + 38.799999 + + + + 36.700001 + + + + 34.700001 + + + + 33.900002 + + + + 33.700001 + + + + 34.299999 + + + + 35.299999 + + + + 35.700001 + + + + 36.099998 + + + + 35.200001 + + + + 35.799999 + + + + 36.299999 + + + + 35.900002 + + + + 36.000000 + + + + 35.700001 + + + + 34.500000 + + + + 32.900002 + + + + 32.299999 + + + + 32.299999 + + + + 33.200001 + + + + 33.000000 + + + + 31.799999 + + + + 31.100000 + + + + 30.600000 + + + + 28.799999 + + + + 28.299999 + + + + 27.500000 + + + + 27.700001 + + + + 27.200001 + + + + 25.600000 + + + + 23.200001 + + + + 21.900000 + + + + 20.900000 + + + + 20.900000 + + + + 19.600000 + + + + 20.500000 + + + + 20.500000 + + + + 19.000000 + + + + 15.900000 + + + + 14.600000 + + + + 13.400000 + + + + 13.400000 + + + + 15.300000 + + + + 15.100000 + + + + 15.300000 + + + + 16.799999 + + + + 16.799999 + + + + 19.799999 + + + + 19.700001 + + + + 18.600000 + + + + 18.600000 + + + + 12.900000 + + + + 12.300000 + + + + 11.900000 + + + + 11.900000 + + + + 13.100000 + + + + 13.700000 + + + + 13.700000 + + + + 13.700000 + + + + 14.600000 + + + + 14.600000 + + + + 14.600000 + + + + 14.400000 + + + + 15.300000 + + + + 15.700000 + + + + 15.700000 + + + + 16.100000 + + + + 15.900000 + + + + 16.400000 + + + + 16.400000 + + + + 15.500000 + + + + 15.700000 + + + + 16.100000 + + + + 16.100000 + + + + 18.299999 + + + + 18.900000 + + + + 19.299999 + + + + 19.299999 + + + + 22.200001 + + + + 22.500000 + + + + 23.000000 + + + + 23.000000 + + + + 23.700001 + + + + 24.400000 + + + + 25.400000 + + + + 25.400000 + + + + 28.799999 + + + + 30.299999 + + + + 31.400000 + + + + 31.200001 + + + + 30.700001 + + + + 30.700001 + + + + 31.500000 + + + + 31.900000 + + + + 31.900000 + + + + 31.900000 + + + + 33.700001 + + + + 34.299999 + + + + 34.299999 + + + + 35.400002 + + + + 36.099998 + + + + 36.000000 + + + + 36.299999 + + + + 36.299999 + + + + 37.299999 + + + + 36.700001 + + + + 36.400002 + + + + 37.299999 + + + + 38.400002 + + + + 40.099998 + + + + 40.099998 + + + + 44.700001 + + + + 45.799999 + + + + 45.500000 + + + + 44.599998 + + + + 44.400002 + + + + 44.700001 + + + + 44.700001 + + + + 43.400002 + + + + 42.799999 + + + + 42.700001 + + + + 42.700001 + + + + 40.299999 + + + + 40.000000 + + + + 39.200001 + + + + 39.200001 + + + + 36.700001 + + + + 36.200001 + + + + 35.099998 + + + + 35.099998 + + + + 32.400002 + + + + 31.799999 + + + + 31.000000 + + + + 31.000000 + + + + 28.900000 + + + + 28.000000 + + + + 27.200001 + + + + 27.200001 + + + + 23.700001 + + + + 23.100000 + + + + 22.000000 + + + + 21.100000 + + + + 20.799999 + + + + 20.400000 + + + + 20.400000 + + + + 19.900000 + + + + 20.500000 + + + + 20.600000 + + + + 20.600000 + + + + 20.299999 + + + + 19.900000 + + + + 19.900000 + + + + 21.299999 + + + + 21.600000 + + + + 21.600000 + + + + 21.200001 + + + + 21.100000 + + + + 21.100000 + + + + 19.600000 + + + + 19.799999 + + + + 20.100000 + + + + 20.100000 + + + + 21.799999 + + + + 22.400000 + + + + 22.700001 + + + + 22.700001 + + + + 24.400000 + + + + 24.400000 + + + + 24.500000 + + + + 23.900000 + + + + 23.900000 + + + + 25.600000 + + + + 26.500000 + + + + 26.900000 + + + + 28.700001 + + + + 28.700001 + + + + 31.700001 + + + + 32.400002 + + + + 32.299999 + + + + 32.299999 + + + + 35.599998 + + + + 36.700001 + + + + 37.799999 + + + + 37.799999 + + + + 38.599998 + + + + 37.799999 + + + + 36.500000 + + + + 36.500000 + + + + 35.099998 + + + + 34.799999 + + + + 34.200001 + + + + 34.200001 + + + + 34.400002 + + + + 33.900002 + + + + 33.500000 + + + + 33.500000 + + + + 32.799999 + + + + 33.900002 + + + + 34.299999 + + + + 34.299999 + + + + 34.099998 + + + + 34.200001 + + + + 33.599998 + + + + 33.599998 + + + + 33.900002 + + + + 33.599998 + + + + 33.400002 + + + + 33.400002 + + + + 34.299999 + + + + 34.799999 + + + + 34.299999 + + + + 33.900002 + + + + 33.900002 + + + + 33.200001 + + + + 34.500000 + + + + 34.799999 + + + + 34.799999 + + + + 35.500000 + + + + 35.599998 + + + + 36.500000 + + + + 37.500000 + + + + 37.500000 + + + + 38.799999 + + + + 39.200001 + + + + 39.200001 + + + + 39.400002 + + + + 39.200001 + + + + 39.500000 + + + + 39.500000 + + + + 39.599998 + + + + 39.099998 + + + + 39.200001 + + + + 39.200001 + + + + 39.200001 + + + + 39.299999 + + + + 39.299999 + + + + 39.299999 + + + + 41.099998 + + + + 41.599998 + + + + 41.599998 + + + + 43.700001 + + + + 43.900002 + + + + 43.900002 + + + + 42.700001 + + + + 42.700001 + + + + 40.900002 + + + + 39.799999 + + + + 39.500000 + + + + 39.299999 + + + + 39.299999 + + + + 35.200001 + + + + 34.900002 + + + + 34.900002 + + + + 32.500000 + + + + 31.700001 + + + + 31.700001 + + + + 30.900000 + + + + 29.799999 + + + + 29.299999 + + + + 28.600000 + + + + 28.600000 + + + + 25.100000 + + + + 24.700001 + + + + 24.500000 + + + + 24.500000 + + + + 26.900000 + + + + 26.000000 + + + + 26.000000 + + + + 26.000000 + + + + 26.600000 + + + + 27.000000 + + + + 27.000000 + + + + 25.900000 + + + + 26.200001 + + + + 25.700001 + + + + 25.700001 + + + + 26.400000 + + + + 26.799999 + + + + 27.100000 + + + + 27.000000 + + + + 27.000000 + + + + 26.799999 + + + + 26.799999 + + + + 27.200001 + + + + 27.000000 + + + + 27.000000 + + + + 28.500000 + + + + 28.200001 + + + + 27.500000 + + + + 27.500000 + + + + 26.200001 + + + + 26.200001 + + + + 28.100000 + + + + 28.100000 + + + + 28.100000 + + + + 29.299999 + + + + 28.900000 + + + + 28.900000 + + + + 28.400000 + + + + 28.600000 + + + + 28.600000 + + + + 28.600000 + + + + 31.100000 + + + + 32.000000 + + + + 32.200001 + + + + 32.200001 + + + + 31.600000 + + + + 32.000000 + + + + 32.000000 + + + + 32.000000 + + + + 30.400000 + + + + 29.799999 + + + + 28.900000 + + + + 28.400000 + + + + 28.200001 + + + + 27.200001 + + + + 27.200001 + + + + 27.200001 + + + + 25.900000 + + + + 25.500000 + + + + 24.700001 + + + + 24.799999 + + + + 24.600000 + + + + 24.600000 + + + + 24.600000 + + + + 21.600000 + + + + 20.799999 + + + + 20.400000 + + + + 20.200001 + + + + 19.500000 + + + + 18.500000 + + + + 17.700001 + + + + 17.700001 + + + + 15.700000 + + + + 16.299999 + + + + 16.799999 + + + + 16.900000 + + + + 16.900000 + + + + 17.100000 + + + + 18.100000 + + + + 18.700001 + + + + 18.700001 + + + + 19.600000 + + + + 19.400000 + + + + 19.400000 + + + + 19.700001 + + + + 20.100000 + + + + 20.200001 + + + + 20.200001 + + + + 20.100000 + + + + 18.700001 + + + + 18.799999 + + + + 18.799999 + + + + 22.600000 + + + + 22.900000 + + + + 23.799999 + + + + 23.799999 + + + + 28.799999 + + + + 29.100000 + + + + 30.200001 + + + + 31.200001 + + + + 32.200001 + + + + 33.400002 + + + + 33.400002 + + + + 34.599998 + + + + 35.200001 + + + + 35.799999 + + + + 35.799999 + + + + 34.799999 + + + + 34.900002 + + + + 34.900002 + + + + 34.200001 + + + + 34.500000 + + + + 34.500000 + + + + 35.200001 + + + + 35.400002 + + + + 35.500000 + + + + 35.500000 + + + + 33.200001 + + + + 33.400002 + + + + 33.400002 + + + + 34.799999 + + + + 35.000000 + + + + 35.299999 + + + + 35.299999 + + + + 37.700001 + + + + 37.900002 + + + + 37.900002 + + + + 38.400002 + + + + 38.299999 + + + + 38.000000 + + + + 35.500000 + + + + 35.099998 + + + + 34.599998 + + + + 34.599998 + + + + 33.799999 + + + + 34.000000 + + + + 34.799999 + + + + 34.799999 + + + + 36.500000 + + + + 37.799999 + + + + 37.799999 + + + + 41.799999 + + + + 41.700001 + + + + 41.700001 + + + + 36.799999 + + + + 34.700001 + + + + 34.700001 + + + + 26.000000 + + + + 24.299999 + + + + 23.700001 + + + + 21.900000 + + + + 21.900000 + + + + 15.800000 + + + + 14.100000 + + + + 14.100000 + + + + 5.000000 + + + + 3.800000 + + + + 2.900000 + + + + 2.900000 + + + + -0.700000 + + + + -0.400000 + + + + 0.800000 + + + + 0.800000 + + + + 0.600000 + + + + 0.400000 + + + + -0.300000 + + + + -0.300000 + + + + -1.800000 + + + + -2.700000 + + + + -2.700000 + + + + -4.500000 + + + + -4.900000 + + + + -4.900000 + + + + -4.700000 + + + + -4.600000 + + + + -3.800000 + + + + -4.300000 + + + + -4.300000 + + + + -5.100000 + + + + -4.200000 + + + + -2.000000 + + + + -2.000000 + + + + -0.500000 + + + + -0.200000 + + + + -0.800000 + + + + -0.800000 + + + + -2.100000 + + + + -2.200000 + + + + -1.600000 + + + + -1.600000 + + + + -0.900000 + + + + -0.700000 + + + + -0.700000 + + + + 1.200000 + + + + 2.400000 + + + + 1.800000 + + + + 1.800000 + + + + -0.800000 + + + + -2.100000 + + + + -2.100000 + + + + -5.400000 + + + + -5.500000 + + + + -5.500000 + + + + -5.500000 + + + + -5.500000 + + + + -6.200000 + + + + -6.400000 + + + + -6.400000 + + + + -7.900000 + + + + -7.500000 + + + + -6.600000 + + + + -6.600000 + + + + -3.700000 + + + + -3.500000 + + + + -2.500000 + + + + -2.500000 + + + + -1.200000 + + + + -0.200000 + + + + 0.800000 + + + + 1.300000 + + + + 1.700000 + + + + 1.900000 + + + + 2.600000 + + + + 2.600000 + + + + 5.700000 + + + + 6.600000 + + + + 6.900000 + + + + 8.400000 + + + + 8.400000 + + + + 14.100000 + + + + 14.700000 + + + + 14.900000 + + + + 14.900000 + + + + 15.600000 + + + + 15.500000 + + + + 15.500000 + + + + 16.200001 + + + + 16.200001 + + + + 18.200001 + + + + 18.200001 + + + + 18.200001 + + + + 18.200001 + + + + 16.500000 + + + + 16.000000 + + + + 16.799999 + + + + 16.799999 + + + + 17.400000 + + + + 17.299999 + + + + 17.100000 + + + + 17.400000 + + + + 17.400000 + + + + 17.900000 + + + + 18.400000 + + + + 19.000000 + + + + 19.000000 + + + + 17.299999 + + + + 16.799999 + + + + 16.900000 + + + + 16.900000 + + + + 17.700001 + + + + 18.400000 + + + + 18.500000 + + + + 18.500000 + + + + 18.200001 + + + + 18.200001 + + + + 17.200001 + + + + 17.200001 + + + + 17.200001 + + + + 15.900000 + + + + 15.500000 + + + + 16.000000 + + + + 16.000000 + + + + 19.299999 + + + + 18.600000 + + + + 18.600000 + + + + 18.600000 + + + + 17.000000 + + + + 17.000000 + + + + 16.600000 + + + + 16.600000 + + + + 15.300000 + + + + 15.500000 + + + + 15.300000 + + + + 15.300000 + + + + 14.300000 + + + + 14.300000 + + + + 14.300000 + + + + 12.000000 + + + + 11.100000 + + + + 10.800000 + + + + 10.800000 + + + + 12.100000 + + + + 11.800000 + + + + 12.200000 + + + + 12.200000 + + + + 13.600000 + + + + 14.500000 + + + + 14.500000 + + + + 19.000000 + + + + 19.600000 + + + + 20.799999 + + + + 20.500000 + + + + 20.100000 + + + + 19.500000 + + + + 20.500000 + + + + 21.100000 + + + + 21.100000 + + + + 23.100000 + + + + 23.000000 + + + + 23.000000 + + + + 25.000000 + + + + 25.400000 + + + + 24.900000 + + + + 24.299999 + + + + 22.900000 + + + + 22.600000 + + + + 22.600000 + + + + 19.900000 + + + + 19.299999 + + + + 19.100000 + + + + 18.900000 + + + + 18.900000 + + + + 18.000000 + + + + 17.200001 + + + + 16.500000 + + + + 16.500000 + + + + 16.500000 + + + + 13.100000 + + + + 12.700000 + + + + 12.800000 + + + + 12.800000 + + + + 12.100000 + + + + 12.800000 + + + + 12.900000 + + + + 14.600000 + + + + 14.300000 + + + + 15.300000 + + + + 15.300000 + + + + 15.100000 + + + + 15.000000 + + + + 15.500000 + + + + 15.500000 + + + + 16.500000 + + + + 18.299999 + + + + 19.500000 + + + + 19.500000 + + + + 22.500000 + + + + 23.299999 + + + + 23.299999 + + + + 22.700001 + + + + 22.700001 + + + + 22.799999 + + + + 23.400000 + + + + 24.000000 + + + + 24.000000 + + + + 21.100000 + + + + 20.100000 + + + + 19.799999 + + + + 19.500000 + + + + 19.500000 + + + + 19.299999 + + + + 18.600000 + + + + 18.600000 + + + + 16.799999 + + + + 16.200001 + + + + 15.800000 + + + + 17.100000 + + + + 16.600000 + + + + 16.700001 + + + + 16.700001 + + + + 16.799999 + + + + 17.700001 + + + + 17.700001 + + + + 17.400000 + + + + 16.900000 + + + + 16.700001 + + + + 16.700001 + + + + 18.100000 + + + + 18.700001 + + + + 18.400000 + + + + 17.500000 + + + + 17.000000 + + + + 17.700001 + + + + 18.200001 + + + + 20.400000 + + + + 21.700001 + + + + 21.600000 + + + + 21.600000 + + + + 25.200001 + + + + 26.200001 + + + + 27.000000 + + + + 27.000000 + + + + 28.500000 + + + + 28.299999 + + + + 28.799999 + + + + 27.700001 + + + + 27.900000 + + + + 28.500000 + + + + 28.900000 + + + + 28.900000 + + + + 30.000000 + + + + 29.700001 + + + + 27.700001 + + + + 27.700001 + + + + 26.600000 + + + + 27.400000 + + + + 27.100000 + + + + 27.100000 + + + + 26.600000 + + + + 26.600000 + + + + 26.600000 + + + + 26.299999 + + + + 27.200001 + + + + 27.200001 + + + + 28.200001 + + + + 28.500000 + + + + 28.500000 + + + + 31.000000 + + + + 32.099998 + + + + 32.099998 + + + + 34.299999 + + + + 34.900002 + + + + 35.000000 + + + + 35.000000 + + + + 34.900002 + + + + 35.299999 + + + + 36.500000 + + + + 36.500000 + + + + 38.599998 + + + + 38.799999 + + + + 39.200001 + + + + 39.200001 + + + + 38.900002 + + + + 38.400002 + + + + 38.400002 + + + + 35.299999 + + + + 34.299999 + + + + 33.799999 + + + + 31.400000 + + + + 30.400000 + + + + 29.900000 + + + + 29.400000 + + + + 29.200001 + + + + 29.200001 + + + + 28.600000 + + + + 27.900000 + + + + 27.000000 + + + + 25.700001 + + + + 25.700001 + + + + 22.400000 + + + + 22.200001 + + + + 22.000000 + + + + 21.100000 + + + + 18.299999 + + + + 19.100000 + + + + 18.799999 + + + + 18.799999 + + + + 23.600000 + + + + 24.100000 + + + + 24.299999 + + + + 25.400000 + + + + 25.400000 + + + + 25.100000 + + + + 26.000000 + + + + 26.900000 + + + + 28.200001 + + + + 28.200001 + + + + 33.599998 + + + + 34.599998 + + + + 34.500000 + + + + 34.200001 + + + + 33.799999 + + + + 33.400002 + + + + 32.299999 + + + + 32.299999 + + + + 31.400000 + + + + 30.600000 + + + + 30.799999 + + + + 29.799999 + + + + 28.900000 + + + + 28.000000 + + + + 23.400000 + + + + 23.100000 + + + + 22.500000 + + + + 21.799999 + + + + 20.500000 + + + + 19.900000 + + + + 20.000000 + + + + 19.200001 + + + + 19.200001 + + + + 18.000000 + + + + 18.299999 + + + + 18.200001 + + + + 18.200001 + + + + 19.500000 + + + + 19.000000 + + + + 19.200001 + + + + 19.400000 + + + + 19.400000 + + + + 23.100000 + + + + 23.000000 + + + + 23.900000 + + + + 23.900000 + + + + 28.299999 + + + + 28.000000 + + + + 27.299999 + + + + 27.299999 + + + + 24.700001 + + + + 25.100000 + + + + 25.000000 + + + + 25.400000 + + + + 25.400000 + + + + 23.799999 + + + + 22.900000 + + + + 23.100000 + + + + 23.000000 + + + + 23.000000 + + + + 24.400000 + + + + 24.299999 + + + + 24.600000 + + + + 26.400000 + + + + 26.000000 + + + + 25.000000 + + + + 24.900000 + + + + 24.900000 + + + + 24.900000 + + + + 25.100000 + + + + 25.100000 + + + + 25.799999 + + + + 26.200001 + + + + 26.600000 + + + + 26.600000 + + + + 26.900000 + + + + 27.100000 + + + + 26.400000 + + + + 25.400000 + + + + 25.400000 + + + + 25.299999 + + + + 26.100000 + + + + 27.500000 + + + + 28.100000 + + + + 28.500000 + + + + 28.500000 + + + + 35.299999 + + + + 36.900002 + + + + 36.700001 + + + + 36.700001 + + + + 38.400002 + + + + 38.599998 + + + + 38.599998 + + + + 38.599998 + + + + 38.599998 + + + + 38.900002 + + + + 38.299999 + + + + 38.700001 + + + + 38.700001 + + + + 38.200001 + + + + 37.700001 + + + + 37.599998 + + + + 37.599998 + + + + 37.500000 + + + + 37.500000 + + + + 35.799999 + + + + 34.599998 + + + + 34.599998 + + + + 34.900002 + + + + 35.400002 + + + + 36.000000 + + + + 36.599998 + + + + + diff --git a/gpsbabel/reference/track/vitovtt-sample.vtt b/gpsbabel/reference/track/vitovtt-sample.vtt new file mode 100644 index 0000000000000000000000000000000000000000..6911853b40c78cfd257089a48ff277697c815bf8 GIT binary patch literal 59720 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 1 URL in selected files. # diff --git a/gpsbabel/vecs.c b/gpsbabel/vecs.c index 45c2689b9..4d7aedc68 100644 --- a/gpsbabel/vecs.c +++ b/gpsbabel/vecs.c @@ -114,6 +114,7 @@ extern ff_vecs_t dmtlog_vecs; extern ff_vecs_t raymarine_vecs; extern ff_vecs_t alanwpr_vecs; extern ff_vecs_t alantrl_vecs; +extern ff_vecs_t vitovtt_vecs; static vecs_t vec_list[] = { @@ -630,6 +631,12 @@ vecs_t vec_list[] = { "Alan Map500 tracklogs (.trl)", "trl" }, + { + &vitovtt_vecs, + "vitovtt", + "Vito SmartMap tracks (.vtt)", + "vtt" + }, { NULL, NULL, diff --git a/gpsbabel/vitosmt.c b/gpsbabel/vitosmt.c index e1ee16fbf..1aa1816f6 100644 --- a/gpsbabel/vitosmt.c +++ b/gpsbabel/vitosmt.c @@ -155,11 +155,15 @@ vitosmt_read(void) MYNAME, __LINE__, strerror(errno) ); break; } +fprintf(stderr, "Looptop %d\n", ftell(infile)); latrad =ReadDouble(infile); /* WGS84 latitude in radians */ lonrad =ReadDouble(infile); /* WGS84 longitude in radians */ elev =ReadDouble(infile); /* elevation in meters */ +fprintf(stderr, "before %d\n", ftell(infile)); timestamp =ReadRecord(infile,5); /* UTC time yr/mo/dy/hr/mi */ +fprintf(stderr, "%d latrad %f/%f ele %f\n", ftell(infile),latrad, DEG(latrad), elev); + seconds =ReadDouble(infile); /* seconds */ speed =ReadDouble(infile); /* speed in knots */ course =ReadDouble(infile); /* course in degrees */ diff --git a/gpsbabel/vitovtt.c b/gpsbabel/vitovtt.c new file mode 100644 index 000000000..91a53c6c8 --- /dev/null +++ b/gpsbabel/vitovtt.c @@ -0,0 +1,140 @@ +/* + Read Vito SmartMap .vtt tracks + + Copyright (C) 2007 Jeremy Ehrhardt, jeremye@caltech.edu + + based on vitostc.c, which is + Copyright (C) 2005 Etienne TASSE + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 USA + + */ + +#include +#include +#include +#include + +#define MYNAME "vitovtt" +#include "defs.h" + +#define TM_YEAR_ZERO 1900 +#define TM_MONTH_ZERO 1 + +static gbfile *infile = 0; +static int count = 0; + +static const int vitovtt_version = 3; +static const size_t vitovtt_headersize = 16; +static const size_t vitovtt_datasize = 32; + +static const double vitovtt_latitudescale = 20000000.0; +static const double vitovtt_longitudescale = 10000000.0; +static const int vitovtt_secondscale = 30000000; +static const int vitovtt_microsecondscale = 30; + +static void +rd_init(const char *fname) +{ + infile = gbfopen_le(fname, "rb", MYNAME); +} + +static void +rd_deinit(void) +{ + gbfclose(infile); +} + +static void +vitovtt_read(void) +{ + int version = 0; + route_head *route_head = 0; + waypoint *wpt_tmp = 0; + int scaled_lat = 0; + int scaled_lon = 0; + double altitude = 0; + struct tm tmStruct; + int scaled_sec = 0; + int microseconds = 0; + double speed = 0; + int course = 0; + int status = 0; + int serial = 0; + + memset(&tmStruct, 0, sizeof(tmStruct)); + + route_head = route_head_alloc(); + track_add_head(route_head); + + /* Read the header. */ + version = gbfgetint32(infile); + count = gbfgetint32(infile); + + if (version!=vitovtt_version) { + + fatal("%s (%d) reading file. Unsupported version %d\n", + MYNAME, __LINE__, version ); + } + + while (count) { + /* Read an entry. */ + scaled_lat = gbfgetint32(infile); + scaled_lon = gbfgetint32(infile); + altitude = gbfgetflt(infile); + tmStruct.tm_year = gbfgetint16(infile) - TM_YEAR_ZERO; + tmStruct.tm_mon = gbfgetc(infile) - TM_MONTH_ZERO; + tmStruct.tm_mday = gbfgetc(infile); + tmStruct.tm_hour = gbfgetc(infile); + tmStruct.tm_min = gbfgetc(infile); + scaled_sec = gbfgetint32(infile); + speed = gbfgetflt(infile); + course = gbfgetint16(infile); + status = gbfgetint32(infile); + + wpt_tmp = waypt_new(); + + wpt_tmp->latitude = scaled_lat / vitovtt_latitudescale; + wpt_tmp->longitude = scaled_lon / vitovtt_longitudescale; + wpt_tmp->altitude = altitude; + + tmStruct.tm_sec = scaled_sec / vitovtt_secondscale; + microseconds = (scaled_sec % vitovtt_secondscale) / vitovtt_microsecondscale; + wpt_tmp->creation_time = mkgmtime(&tmStruct); + wpt_tmp->microseconds = microseconds; + + /* + * TODO: interpret speed, course, status + */ + + track_add_wpt(route_head, wpt_tmp); + + count--; + } +} + +ff_vecs_t vitovtt_vecs = { + ff_type_file, + { ff_cap_none, ff_cap_read, ff_cap_none }, + rd_init, + NULL, + rd_deinit, + NULL, + vitovtt_read, + NULL, + NULL, + NULL, + CET_CHARSET_UTF8, 1 /* do nothing | CET-REVIEW */ +}; diff --git a/gpsbabel/xmldoc/formats/vitovtt.xml b/gpsbabel/xmldoc/formats/vitovtt.xml new file mode 100644 index 000000000..8003461f3 --- /dev/null +++ b/gpsbabel/xmldoc/formats/vitovtt.xml @@ -0,0 +1,117 @@ + + This format reads the binary (.vtt) track logs recorded by + + VITO SmartMap for Nokia Series 60 + 1.0, a GPS application for smartphones connected to + NMEA 0183-compatible Bluetooth GPS receivers. It may work + with .vtt files produced by versions of VITO SmartMap + for other platforms. + + + + This format was reverse engineered from a .vtt file. + Currently, the coordinates, altitude, and time are + available for each point recorded in a track. + The course speed and heading fields have been identified, + but the units are not certain and so those fields are ignored. + The rest of the entry has not yet been decoded. The format + uses little-endian byte ordering. The application displays + metric units by default. Time is UTC. + + + + track file header (8 bytes) + + + + Position + Field info + + + + + bytes 0-3 + Probably a version field. Int value is 3 in sample file. + + + bytes 4-7 + Number of points in file as int. + + + +
+ + + track point (32 bytes) + + + + Position + Field info + + + + + bytes 0-3 + Decimal latitude multiplied by 20000000 as int. + + + bytes 4-7 + Decimal longitude multiplied by 10000000 as int. + + + bytes 8-11 + Altitude in meters as float. + + + bytes 12-13 + Year, with century, as int. + + + byte 14 + Month, ranging 1-12. + + + byte 15 + Day of month, ranging 1-31. + + + byte 16 + Hour, ranging 0-23. + + + byte 17 + Minute, ranging 0-59. + + + bytes 18-21 + Decimal second multiplied by 30000000 as int. + + + bytes 22-25 + + Probably speed in meters per second as float. + Ranges 0-~3 in file, seems reasonable since sample + file was acquired on foot. + + + + bytes 26-27 + + Probably decimal heading multiplied by something. + Ranges between min and max values possible when + decoded as integer. Doesn't change when speed field is 0. + Doesn't change smoothly, jumps around a bit. + + + + bytes 28-31 + + Status field of some kind. Changes only twice in file. + May contain satellite count or PDOP info, as both are + reported by the application's GUI. + + + + +
-- 2.30.2